home *** CD-ROM | disk | FTP | other *** search
/ FM Towns: Free Software Collection 11 / FM Towns Free Software Collection 11.iso / t_os / joke / m_clock / m_clock.bas < prev    next >
Encoding:
BASIC Source File  |  1995-08-16  |  44.6 KB  |  859 lines

  1. 10 '********************************************************************
  2. 20 '**   冗談ビデオソフト 「MultiClock」  V1.3 メインルーチン **
  3. 30 '**     ===以下のソフトを使用・又は参考にさせていただきました===    **
  4. 40 '**  #『F-BASIC386  機能拡張REX集』から               **
  5. 50 '**               「8×8ドットフォント取得REX」(作者・ToYoZo) **
  6. 60 '**  #NOI'z BASIC GUI SUPPORT LIBLALY III (作者・NOI'z)             **
  7. 70 '**  #ソフトバンク社刊 "お気楽♪ BASIC"より                             **
  8. 80 '**           「インテリア・デジタルアラームクロック」(作者・永倉一之) **
  9. 90 '**                                         By ちくちくうにうに    **
  10. 100 '********************************************************************
  11. 110 '======起動時のみの初期化======
  12. 120 CLEAR ,,,,1024,300*1024
  13. 130 SCREEN 0:SCREEN@ 0:CLS:WINDOW(0,0)-(1023,511):VIEW(0,0)-(1023,511)
  14. 140 PROG_FLAG=1:FONT_FLAG=1
  15. 150 AND0$=CHR$(&H7F,&HFF,&H3F,&HFF,&H1F,&HFF,&H0F,&HFF,&H07,&HFF,&H03,&HFF,&H01,&HFF,&H00,&HFF,&H00,&H7F,&H00,&H3F,&H00,&H1F,&H00,&HFF,&H00,&HFF,&H18,&H7F,&H38,&H7F,&HFC,&H7F) 'マウスカーソール用パターン1
  16. 160 DOT0$=CHR$(&H00,&H00,&H00,&H00,&H40,&H00,&H20,&H00,&H50,&H00,&H38,&H00,&H5C,&H00,&H2E,&H00,&H5F,&H00,&H2F,&H80,&H5E,&H00,&H26,&H00,&H42,&H00,&H03,&H00,&H01,&H00,&H00,&H00) 'マウスカーソール用パターン2
  17. 170 DIM PAL%(2,15),SANKAKU(500),EXIT(500)
  18. 180 DIM FMTOWNS(500),BS$(200),HX(200),HY(200),HDX(200),HDY(200),COL(200),MOJI$(200),PUSHB(200)
  19. 190 GOSUB *PAL_LOAD
  20. 200 GOSUB *EXIT:CLS:GOSUB *FMTOWNS:CLS:GOSUB *SANKAKU:CLS
  21. 210 LOADM"fnt_ar.rex",0 'ToYoZo氏の8DOTFONT-LOADER
  22. 220 '==============================
  23. 230 *FORMAT 'GUIシステムのみの初期化
  24. 240 SCREEN 0:SCREEN@ 0:CLS:WINDOW(0,0)-(1023,511):VIEW(0,0)-(1023,511)
  25. 250 XBAI=2:YBAI=2:GOSUB *ZOOM
  26. 260 PALETTE 7,[30,30,30]:GOSUB *FED_IN
  27. 270 DEF FONT"システム   12ドット":MOUSE 0:MOUSE 1,160,120,1:MOUSE 2,AND0$,DOT0$:MOUSE 4,0,0,319,239
  28. 280 GOTO *YOURPROGRAM
  29. 290 '-----------------------------------------------SUBルーチン群
  30. 300 *FED_IN 'フェードインを行う 16/256COLORのみ使用可
  31. 310 FOR I=0 TO 15
  32. 320 FOR COL=0 TO 15
  33. 330 PALETTE COL,[PAL%(0,COL)*I,PAL%(1,COL)*I,PAL%(2,COL)*I]
  34. 340 NEXT
  35. 350 NEXT:RETURN
  36. 360 '
  37. 370 *FED_OUT 'フェードアウトを行う 16/256のみ
  38. 380 FOR I=15 TO 0 STEP -1
  39. 390 FOR COL=0 TO 15
  40. 400 PALETTE COL,[PAL%(0,COL)*I,PAL%(1,COL)*I,PAL%(2,COL)*I]
  41. 410 NEXT
  42. 420 NEXT:RETURN
  43. 430 '
  44. 440 *CONNECT 'ボタン その1
  45. 450 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),7,PSET
  46. 460 CONNECT (X2,Y1+1)-(X2,Y2)-(X1+1,Y2),%8,PSET
  47. 470 RETURN
  48. 480 '
  49. 490 *CONNECT2 'ボタン その2
  50. 500 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),7,PSET
  51. 510 CONNECT (X1+1,Y2-1)-(X1+1,Y1+1)-(X2-1,Y1+1),7,PSET
  52. 520 CONNECT (X2,Y1+1)-(X2,Y2)-(X1+1,Y2),%8,PSET
  53. 530 CONNECT (X2-1,Y1+2)-(X2-1,Y2-1)-(X1+2,Y2-1),%8,PSET
  54. 540 RETURN
  55. 550 '
  56. 560 *CONNECTR '押されたボタン 1
  57. 570 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),%8,PSET
  58. 580 CONNECT (X2,Y1+1)-(X2,Y2)-(X1+1,Y2),7,PSET
  59. 590 RETURN
  60. 600 '
  61. 610 *CONNECT2R '押されたボタン 2
  62. 620 CONNECT (X1,Y2)-(X1,Y1)-(X2,Y1),%8,PSET
  63. 630 CONNECT (X1+1,Y2-1)-(X1+1,Y1+1)-(X2-1,Y1+1),%8,PSET
  64. 640 CONNECT (X2,Y1+1)-(X2,Y2)-(X1+1,Y2),7,PSET
  65. 650 CONNECT (X2-1,Y1+2)-(X2-1,Y2-1)-(X1+2,Y2-1),7,PSET
  66. 660 RETURN
  67. 670 '
  68. 680 *SANKAKU '▼フォント作成
  69. 690 RESTORE 700
  70. 700 DATA -1,0,0,0,0
  71. 710 DATA -1,-1,0,0,0
  72. 720 DATA -1,-1,-1,0,0
  73. 730 DATA -1,-1,-1,-1,0
  74. 740 DATA -1,-1,-1,-1,-1
  75. 750 DATA -1,-1,-1,-1,0
  76. 760 DATA -1,-1,-1,0,0
  77. 770 DATA -1,-1,0,0,0
  78. 780 DATA -1,0,0,0,0
  79. 790 DATA 0,0,0,0,0
  80. 800 FOR I=0 TO 9:FOR A=0 TO 4:READ DOT
  81. 810 IF DOT=-1 THEN PSET(I,480+A),7
  82. 820 NEXT:NEXT
  83. 830 GET@A(0,480)-(9,484),SANKAKU
  84. 840 RETURN
  85. 850 '
  86. 860 *EXIT'出口のフォント
  87. 870 RESTORE 910
  88. 880 FOR Y=0 TO 12:FOR X=0 TO 10:READ E
  89. 890 IF E=1 THEN PSET(640+X,Y),7
  90. 900 NEXT:NEXT
  91. 910 DATA 0,0,0,0,1,1,1,0,0,0,0
  92. 920 DATA 0,0,0,0,1,1,1,0,0,0,0
  93. 930 DATA 0,0,0,0,1,1,1,0,0,0,0
  94. 940 DATA 0,0,0,0,1,1,1,0,0,0,0
  95. 950 DATA 0,0,0,0,0,0,0,0,0,0,0
  96. 960 DATA 0,0,0,0,1,1,1,0,0,0,0
  97. 970 DATA 0,0,0,0,1,1,1,0,0,0,0
  98. 980 DATA 0,0,0,1,1,1,1,1,0,0,0
  99. 990 DATA 0,0,0,1,1,1,1,1,0,0,0
  100. 1000 DATA 0,0,1,1,1,1,1,1,1,0,0
  101. 1010 DATA 0,0,1,1,1,1,1,1,1,0,0
  102. 1020 DATA 0,1,1,1,1,1,1,1,1,1,0
  103. 1030 DATA 1,1,1,1,1,1,1,1,1,1,1
  104. 1040 GET@A(640,0)-(650,12),EXIT
  105. 1050 '
  106. 1060 *FMTOWNS'FMTOWNSのロゴ
  107. 1070 RESTORE 1080
  108. 1080 DATA 0,0,0,0,0,0,-1,0,0,0,-1
  109. 1090 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  110. 1100 DATA 0,0,0,0,0,0,-1,0,-1,0,-1
  111. 1110 DATA 0,0,0,0,0,0,-1,0,-1,0,0
  112. 1120 DATA 0,0,0,0,0,0,-1,-1,0,0,0
  113. 1130 DATA 0,0,0,0,0,0,0,0,0,0,0
  114. 1140 DATA 0,0,0,0,0,0,-1,0,0,0,-1
  115. 1150 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  116. 1160 DATA 0,0,0,0,0,0,0,-1,-1,0,0
  117. 1170 DATA 0,0,0,0,0,0,0,0,0,-1,-1
  118. 1180 DATA 0,0,0,0,0,0,0,0,-1,-1,0
  119. 1190 DATA 0,0,0,0,0,0,-1,-1,0,0,-1
  120. 1200 DATA -1,-1,0,0,0,0,-1,-1,-1,-1,-1
  121. 1210 DATA -1,-1,0,0,0,0,-1,0,0,0,-1
  122. 1220 DATA -1,-1,0,0,0,0,0,0,0,0,0
  123. 1230 DATA -1,-1,0,0,0,0,0,0,0,0,0
  124. 1240 DATA -1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1
  125. 1250 DATA -1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1
  126. 1260 DATA -1,-1,0,0,0,0,0,0,0,0,0
  127. 1270 DATA -1,-1,0,0,0,0,0,0,0,0,0
  128. 1280 DATA -1,-1,0,0,0,0,0,0,0,0,0
  129. 1290 DATA -1,-1,0,0,-1,0,-1,0,0,0,0
  130. 1300 DATA 0,0,-1,-1,-1,0,-1,-1,-1,0,0
  131. 1310 DATA 0,-1,-1,-1,-1,0,-1,-1,-1,-1,0
  132. 1320 DATA 0,-1,-1,0,0,0,0,0,-1,-1,0
  133. 1330 DATA -1,-1,0,0,0,0,0,0,0,-1,-1
  134. 1340 DATA -1,-1,0,0,0,0,0,0,0,-1,-1
  135. 1350 DATA -1,-1,0,0,0,0,0,0,0,-1,-1
  136. 1360 DATA 0,-1,-1,0,0,0,0,0,-1,-1,0
  137. 1370 DATA 0,-1,-1,-1,-1,0,-1,-1,-1,-1,0
  138. 1380 DATA 0,0,-1,-1,-1,0,-1,-1,-1,0,0
  139. 1390 DATA 0,0,0,0,-1,0,-1,0,0,0,0
  140. 1400 DATA -1,-1,0,0,0,0,0,0,0,0,0
  141. 1410 DATA -1,-1,-1,-1,-1,0,0,0,0,0,0
  142. 1420 DATA 0,0,-1,-1,-1,0,-1,-1,0,0,0
  143. 1430 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  144. 1440 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  145. 1450 DATA 0,0,0,-1,-1,0,-1,-1,0,0,0
  146. 1460 DATA -1,-1,-1,-1,-1,0,0,0,0,0,0
  147. 1470 DATA -1,-1,-1,-1,-1,0,0,0,0,0,0
  148. 1480 DATA 0,0,0,-1,-1,0,-1,-1,0,0,0
  149. 1490 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  150. 1500 DATA 0,0,0,0,0,0,-1,-1,-1,-1,-1
  151. 1510 DATA 0,0,-1,-1,-1,0,-1,-1,0,0,0
  152. 1520 DATA -1,-1,-1,-1,-1,0,0,0,0,0,0
  153. 1530 DATA -1,-1,0,0,0,0,0,0,0,0,0
  154. 1540 DATA 0,0,0,0,0,0,0,0,0,0,0
  155. 1550 DATA -1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1
  156. 1560 DATA -1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1
  157. 1570 DATA -1,-1,0,0,0,0,0,0,0,0,0
  158. 1580 DATA -1,-1,0,0,0,0,0,0,0,0,0
  159. 1590 DATA -1,-1,-1,-1,0,0,0,0,0,0,0
  160. 1600 DATA 0,-1,-1,-1,-1,0,-1,0,0,0,0
  161. 1610 DATA 0,0,0,-1,-1,0,-1,-1,-1,0,0
  162. 1620 DATA 0,0,0,0,0,0,-1,-1,-1,-1,0
  163. 1630 DATA 0,0,0,0,0,0,0,0,-1,-1,-1
  164. 1640 DATA -1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1
  165. 1650 DATA -1,-1,-1,-1,-1,0,-1,-1,-1,-1,-1
  166. 1660 DATA 0,0,0,0,0,0,0,0,0,0,0
  167. 1670 DATA 0,-1,-1,-1,0,0,0,0,0,-1,-1
  168. 1680 DATA -1,-1,-1,-1,-1,0,0,0,0,-1,-1
  169. 1690 DATA -1,-1,-1,-1,-1,0,0,0,0,-1,-1
  170. 1700 DATA -1,-1,0,-1,-1,0,0,0,0,-1,-1
  171. 1710 DATA -1,-1,0,-1,-1,0,0,0,0,-1,-1
  172. 1720 DATA -1,-1,0,-1,-1,0,0,0,0,-1,-1
  173. 1730 DATA -1,-1,0,-1,-1,0,0,0,0,-1,-1
  174. 1740 DATA -1,-1,0,-1,-1,0,-1,-1,-1,-1,-1
  175. 1750 DATA -1,-1,0,-1,-1,0,-1,-1,-1,-1,-1
  176. 1760 DATA 0,0,0,0,-1,0,-1,-1,-1,-1,0
  177. 1770 DATA 0,0,0,0,0,0,0,0,0,0,0
  178. 1780 CLS:FOR I=0 TO 69:FOR A=0 TO 10:READ DOT
  179. 1790 IF DOT=-1 THEN PSET(I,480+A),7
  180. 1800 NEXT:NEXT
  181. 1810 GET@A(0,480)-(69,490),FMTOWNS:RETURN
  182. 1820 '
  183. 1830 *RK '画面をかく
  184. 1840 CLS
  185. 1850 FOR I=0 TO MAX-1
  186. 1860 IF BS$(I)="BOXFIL" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF
  187. 1870 IF BS$(I)="BOXFIL" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF
  188. 1880 IF BS$(I)="CONNECT" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT
  189. 1890 IF BS$(I)="CONNECT" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT
  190. 1900 IF BS$(I)="CONNECT2" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2
  191. 1910 IF BS$(I)="CONNECT2" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2
  192. 1920 IF BS$(I)="CONNECTR" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECTR
  193. 1930 IF BS$(I)="CONNECTR" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECTR
  194. 1940 IF BS$(I)="CONNECT2R" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2R
  195. 1950 IF BS$(I)="CONNECT2R" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2R
  196. 1960 IF BS$(I)="FMTOWNS" THEN PUT@A(HX(I),HY(I))-(HDX(I),HDY(I)),FMTOWNS,MATTE,,,0
  197. 1970 IF BS$(I)="MCONNECT" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT
  198. 1980 IF BS$(I)="MCONNECT" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT
  199. 1990 IF BS$(I)="MCONNECT2" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2
  200. 2000 IF BS$(I)="MCONNECT2" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2
  201. 2010 IF BS$(I)="MCONNECTR" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECTR
  202. 2020 IF BS$(I)="MCONNECTR" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECTR
  203. 2030 IF BS$(I)="MCONNECT2R" AND COL(I)>=0 AND COL(I)<=7 THEN LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,COL(I),BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2R
  204. 2040 IF BS$(I)="MCONNECT2R" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:LINE(HX(I),HY(I))-(HDX(I),HDY(I)),PSET,%C,BF:X1=HX(I):Y1=HY(I):X2=HDX(I):Y2=HDY(I):GOSUB *CONNECT2R
  205. 2050 IF BS$(I)="MOJI" AND COL(I)>=0 AND COL(I)<=7 THEN SYMBOL(HX(I),HY(I)),MOJI$(I),.75!,.75!,COL(I)
  206. 2060 IF BS$(I)="MOJI" AND COL(I)>=8 AND COL(I)<=15 THEN C=COL(I)-8:SYMBOL(HX(I),HY(I)),MOJI$(I),.75!,.75!,%C
  207. 2070 IF BS$(I)="EXIT" THEN PUT@A(HX(I),HY(I))-(HDX(I),HDY(I)),EXIT,MATTE,,,0
  208. 2080 IF BS$(I)="SANKAKU" THEN PUT@A(HX(I),HY(I))-(HDX(I),HDY(I)),SANKAKU,MATTE,,,0
  209. 2090 NEXT
  210. 2100 RETURN
  211. 2110 '
  212. 2120 *ボタン処理
  213. 2130 IF PUSHB(HMX)=2 THEN *BOTTONXOR
  214. 2140 IF PUSHB(HMX)=1 THEN *BOTTONH
  215. 2150 IF COL(HMX)<=7 AND COL(HMX)>=0 AND BS$(HMX)="CONNECT" THEN LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),PSET,COL(HMX),B
  216. 2160 IF COL(HMX)<=15 AND COL(HMX)>=8 AND BS$(HMX)="CONNECT" THEN C=COL(HMX)-8:LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),PSET,%C,B
  217. 2170 IF COL(HMX)<=7 AND COL(HMX)>=0 AND BS$(HMX)="CONNECT2" THEN
  218. 2180 FOR I=0 TO 1:LINE(HX(HMX)+I,HY(HMX)+I)-(HDX(HMX)-I,HDY(HMX)-I),PSET,COL(HMX),B:NEXT
  219. 2190 ENDIF
  220. 2200 IF COL(HMX)<=15 AND COL(HMX)>=8 AND BS$(HMX)="CONNECT2" THEN
  221. 2210 C=COL(HMX)-8:FOR I=0 TO 1:LINE(HX(HMX)+I,HY(HMX)+I)-(HDX(HMX)-I,HDY(HMX)-I),PSET,%C,B:NEXT
  222. 2220 ENDIF
  223. 2230 IF COL(HMX)<=7 AND COL(HMX)>=0 AND BS$(HMX)="CONNECTR" THEN LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),PSET,COL(HMX),BF
  224. 2240 IF COL(HMX)<=15 AND COL(HMX)>=8 AND BS$(HMX)="CONNECTR" THEN C=COL(HMX)-8:LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),PSET,%C,B
  225. 2250 IF COL(HMX)<=7 AND COL(HMX)>=0 AND BS$(HMX)="CONNECT2R" THEN
  226. 2260 FOR I=0 TO 1:LINE(HX(HMX)+I,HY(HMX)+I)-(HDX(HMX)-I,HDY(HMX)-I),PSET,COL(HMX),B:NEXT
  227. 2270 ENDIF
  228. 2280 IF COL(HMX)<=15 AND COL(HMX)>=8 AND BS$(HMX)="CONNECT2R" THEN
  229. 2290 C=COL(HMX)-8:FOR I=0 TO 1:LINE(HX(HMX)+I,HY(HMX)+I)-(HDX(HMX)-I,HDY(HMX)-I),PSET,%C,B:NEXT
  230. 2300 ENDIF
  231. 2310 WHILE MOUSE(2,0)=-1:MX=MOUSE(0):MY=MOUSE(1)
  232. 2320 IF MX>=HX(HMX) AND MY>=HY(HMX) AND MX<=HDX(HMX) AND MY<=HDY(HMX) THEN
  233. 2330 ELSE
  234. 2340 IF BS$(HMX)="CONNECT" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT
  235. 2350 IF BS$(HMX)="CONNECT2" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2
  236. 2360 IF BS$(HMX)="CONNECTR" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECTR
  237. 2370 IF BS$(HMX)="CONNECT2R" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2R
  238. 2380 RETURN:ENDIF
  239. 2390 WEND
  240. 2400 IF BS$(HMX)="CONNECT" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT
  241. 2410 IF BS$(HMX)="CONNECT2" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2
  242. 2420 IF BS$(HMX)="CONNECTR" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECTR
  243. 2430 IF BS$(HMX)="CONNECT2R" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2R
  244. 2440 SWITCH=1:RETURN
  245. 2450 '
  246. 2460 *BOTTONXOR
  247. 2470 LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),XOR,,BF
  248. 2480 WHILE MOUSE(2,0)=-1:MX=MOUSE(0):MY=MOUSE(1)
  249. 2490 IF MX>=HX(HMX) AND MY>=HY(HMX) AND MX<=HDX(HMX) AND MY<=HDY(HMX) ELSE LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),XOR,,BF:RETURN
  250. 2500 WEND
  251. 2510 LINE(HX(HMX),HY(HMX))-(HDX(HMX),HDY(HMX)),XOR,,BF:SWITCH=1:RETURN
  252. 2520 '
  253. 2530 *BOTTONH
  254. 2540 IF BS$(HMX)="CONNECT" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECTR
  255. 2550 IF BS$(HMX)="CONNECT2" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2R
  256. 2560 IF BS$(HMX)="CONNECTR" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT
  257. 2570 IF BS$(HMX)="CONNECT2R" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2
  258. 2580 WHILE MOUSE(2,0)=-1:MX=MOUSE(0):MY=MOUSE(1)
  259. 2590 IF MX>=HX(HMX) AND MY>=HY(HMX) AND MX<=HDX(HMX) AND MY<=HDY(HMX) THEN
  260. 2600 ELSE
  261. 2610 IF BS$(HMX)="CONNECT" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT
  262. 2620 IF BS$(HMX)="CONNECT2" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2
  263. 2630 IF BS$(HMX)="CONNECTR" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECTR
  264. 2640 IF BS$(HMX)="CONNECT2R" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2R
  265. 2650 RETURN:ENDIF
  266. 2660 WEND
  267. 2670 IF BS$(HMX)="CONNECT" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT
  268. 2680 IF BS$(HMX)="CONNECT2" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2
  269. 2690 IF BS$(HMX)="CONNECTR" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECTR
  270. 2700 IF BS$(HMX)="CONNECT2R" THEN X1=HX(HMX):Y1=HY(HMX):X2=HDX(HMX):Y2=HDY(HMX):GOSUB *CONNECT2R
  271. 2710 SWITCH=1:RETURN
  272. 2720 '
  273. 2730 *PAL_LOAD 'パレットデータロード
  274. 2740 RESTORE 2750
  275. 2750 DATA 0 , 0 , 0 
  276. 2760 DATA 12, 12, 12
  277. 2770 DATA 10, 10, 10
  278. 2780 DATA 8 , 8 , 8 
  279. 2790 DATA 6 , 6 , 14
  280. 2800 DATA 2 , 5 , 15
  281. 2810 DATA 6 , 11, 15
  282. 2820 DATA 8 , 8 , 8 
  283. 2830 DATA 4 , 4 , 4 
  284. 2840 DATA 0 , 0 , 15
  285. 2850 DATA 0 , 15, 0 
  286. 2860 DATA 0 , 15, 15
  287. 2870 DATA 15, 0 , 0 
  288. 2880 DATA 15, 0 , 15
  289. 2890 DATA 15, 15, 0 
  290. 2900 DATA 15, 15, 15
  291. 2910 FOR I=0 TO 15
  292. 2920   READ PAL%(0,I),PAL%(1,I),PAL%(2,I)
  293. 2930 NEXT:RETURN
  294. 2940 '
  295. 5000 *YOURPROGRAM 'ここからユーザーPROGRAM
  296. 5010 '======GUIデータ(コントロールパネル)
  297. 5020 MAX= 35
  298. 5030 BS$(0)="BOXFIL":HX(0)=0:HY(0)=0:HDX(0)=319:HDY(0)=239:COL(0)=9:MOJI$(0)="":PUSHB(0)=0
  299. 5040 BS$(1)="MCONNECT":HX(1)=59:HY(1)=59:HDX(1)=248:HDY(1)=197:COL(1)=9:MOJI$(1)="":PUSHB(1)=0
  300. 5050 BS$(2)="CONNECT2":HX(2)=63:HY(2)=63:HDX(2)=77:HDY(2)=78:COL(2)=9:MOJI$(2)="":PUSHB(2)=0
  301. 5060 BS$(3)="MOJI":HX(3)=65:HY(3)=65:HDX(3)=77:HDY(3)=77:COL(3)=7:MOJI$(3)="×":PUSHB(3)=0
  302. 5070 BS$(4)="MOJI":HX(4)=65:HY(4)=66:HDX(4)=77:HDY(4)=78:COL(4)=7:MOJI$(4)="×":PUSHB(4)=0
  303. 5080 BS$(5)="MCONNECTR":HX(5)=81:HY(5)=63:HDX(5)=242:HDY(5)=78:COL(5)=9:MOJI$(5)="":PUSHB(5)=0
  304. 5090 BS$(6)="MOJI":HX(6)=84:HY(6)=65:HDX(6)=192:HDY(6)=77:COL(6)=0:MOJI$(6)="    <MultiClock V1.3>":PUSHB(6)=0
  305. 5100 BS$(7)="MOJI":HX(7)=64:HY(7)=82:HDX(7)=100:HDY(7)=94:COL(7)=0:MOJI$(7)="■表示":PUSHB(7)=0
  306. 5110 BS$(8)="CONNECT":HX(8)=63:HY(8)=96:HDX(8)=73:HDY(8)=106:COL(8)=9:MOJI$(8)="":PUSHB(8)=1
  307. 5120 BS$(9)="CONNECT":HX(9)=63:HY(9)=111:HDX(9)=73:HDY(9)=121:COL(9)=9:MOJI$(9)="":PUSHB(9)=1
  308. 5130 BS$(10)="CONNECT":HX(10)=63:HY(10)=126:HDX(10)=73:HDY(10)=136:COL(10)=9:MOJI$(10)="":PUSHB(10)=1
  309. 5140 BS$(11)="MOJI":HX(11)=76:HY(11)=96:HDX(11)=142:HDY(11)=108:COL(11)=8:MOJI$(11)="RC-TIMECORD":PUSHB(11)=0
  310. 5150 BS$(12)="MOJI":HX(12)=76:HY(12)=111:HDX(12)=160:HDY(12)=123:COL(12)=8:MOJI$(12)="時計(HH:MM:SS)":PUSHB(12)=0
  311. 5160 BS$(13)="MOJI":HX(13)=76:HY(13)=126:HDX(13)=160:HDY(13)=138:COL(13)=8:MOJI$(13)="時計(   MM:SS)":PUSHB(13)=0
  312. 5170 BS$(14)="CONNECT2":HX(14)=74:HY(14)=156:HDX(14)=144:HDY(14)=173:COL(14)=9:MOJI$(14)="":PUSHB(14)=0
  313. 5180 BS$(15)="MOJI":HX(15)=79:HY(15)=159:HDX(15)=139:HDY(15)=171:COL(15)=8:MOJI$(15)="時計合わせ":PUSHB(15)=0
  314. 5190 BS$(16)="CONNECT2":HX(16)=202:HY(16)=177:HDX(16)=244:HDY(16)=193:COL(16)=9:MOJI$(16)="":PUSHB(16)=0
  315. 5200 BS$(17)="CONNECT2":HX(17)=157:HY(17)=177:HDX(17)=199:HDY(17)=193:COL(17)=9:MOJI$(17)="":PUSHB(17)=0
  316. 5210 BS$(18)="MOJI":HX(18)=165:HY(18)=179:HDX(18)=189:HDY(18)=192:COL(18)=7:MOJI$(18)="設定":PUSHB(18)=0
  317. 5220 BS$(19)="MOJI":HX(19)=211:HY(19)=179:HDX(19)=235:HDY(19)=192:COL(19)=7:MOJI$(19)="終了":PUSHB(19)=0
  318. 5230 BS$(20)="CONNECT2":HX(20)=74:HY(20)=176:HDX(20)=144:HDY(20)=193:COL(20)=9:MOJI$(20)="":PUSHB(20)=0
  319. 5240 BS$(21)="MOJI":HX(21)=79:HY(21)=179:HDX(21)=139:HDY(21)=189:COL(21)=0:MOJI$(21)="TVモニタ":PUSHB(21)=0
  320. 5250 BS$(22)="MOJI":HX(22)=165:HY(22)=82:HDX(22)=225:HDY(22)=94:COL(22)=8:MOJI$(22)="■フォント":PUSHB(22)=0
  321. 5260 BS$(23)="CONNECT":HX(23)=164:HY(23)= 98:HDX(23)=226:HDY(23)=112:COL(23)=9:MOJI$(23)="":PUSHB(23)=0
  322. 5270 BS$(24)="CONNECT":HX(24)=164:HY(24)=113:HDX(24)=226:HDY(24)=128:COL(24)=9:MOJI$(24)="":PUSHB(24)=0
  323. 5280 BS$(25)="CONNECT":HX(25)=164:HY(25)=129:HDX(25)=226:HDY(25)=143:COL(25)=9:MOJI$(25)="":PUSHB(25)=0
  324. 5290 BS$(26)="CONNECT":HX(26)=164:HY(26)=144:HDX(26)=226:HDY(26)=158:COL(26)=9:MOJI$(26)="":PUSHB(26)=0
  325. 5300 BS$(27)="CONNECT":HX(27)=164:HY(27)=159:HDX(27)=226:HDY(27)=173:COL(27)=9:MOJI$(27)="":PUSHB(27)=0
  326. 5310 BS$(28)="MOJI":HX(28)=165:HY(28)= 99:HDX(28)=225:HDY(28)=111:COL(28)=0:MOJI$(28)="システム ":PUSHB(28)=0
  327. 5320 BS$(29)="MOJI":HX(29)=165:HY(29)=114:HDX(29)=225:HDY(29)=127:COL(29)=0:MOJI$(29)="明朝体  ":PUSHB(29)=0
  328. 5330 BS$(30)="MOJI":HX(30)=165:HY(30)=130:HDX(30)=225:HDY(30)=142:COL(30)=0:MOJI$(30)="ゴシック体":PUSHB(30)=0
  329. 5340 BS$(31)="MOJI":HX(31)=165:HY(31)=145:HDX(31)=225:HDY(31)=157:COL(31)=0:MOJI$(31)="教科書体 ":PUSHB(31)=0
  330. 5350 BS$(32)="MOJI":HX(32)=165:HY(32)=160:HDX(32)=225:HDY(32)=172:COL(32)=0:MOJI$(32)="まるもじ ":PUSHB(32)=0
  331. 5360 BS$(33)="CONNECT":HX(33)=63:HY(33)=141:HDX(33)=73:HDY(33)=151:COL(33)=9:MOJI$(33)="":PUSHB(33)=1
  332. 5370 BS$(34)="MOJI":HX(34)=76:HY(34)=141:HDX(34)=160:HDY(34)=151:COL(34)=8:MOJI$(34)="時計(HH:MM   )":PUSHB(34)=0
  333. 5380 GOSUB *RK:GOSUB *PROG_SET:GOSUB *FONT_SET
  334. 5390 *ボタン反応1
  335. 5400 WHILE MOUSE(2,0)=0:WEND:MX=MOUSE(0):MY=MOUSE(1):SWITCH=0:HMX=0
  336. 5410 FOR I=0 TO MAX
  337. 5420 IF LEFT$(BS$(I),7)="CONNECT" THEN
  338. 5430 IF MX>=HX(I) AND MY>=HY(I) AND MX<=HDX(I) AND MY<=HDY(I) THEN HMX=I
  339. 5440 ENDIF
  340. 5450 NEXT
  341. 5460 IF HMX<>0 GOTO *ボタン処理1
  342. 5470 GOTO *ボタン反応1
  343. 5480 *ボタン処理1
  344. 5490 GOSUB *ボタン処理
  345. 5500 '==============================ボタン分岐
  346. 5510 IF SWITCH=1 AND HMX=2  THEN MOUSE 5:GOSUB *FED_OUT:END
  347. 5520 IF SWITCH=1 AND HMX=16 THEN MOUSE 5:GOSUB *FED_OUT:END
  348. 5530 IF SWITCH=1 AND HMX=17 THEN GOTO *JUMP
  349. 5540 IF SWITCH=1 AND HMX=14 THEN GOTO *SET_TIMER
  350. 5550 IF SWITCH=1 AND HMX=8  THEN GOSUB *PROG_SET
  351. 5560 IF SWITCH=1 AND HMX=9  THEN GOSUB *PROG_SET
  352. 5570 IF SWITCH=1 AND HMX=10 THEN GOSUB *PROG_SET
  353. 5580 IF SWITCH=1 AND HMX=33 THEN GOSUB *PROG_SET
  354. 5590 IF SWITCH=1 AND HMX=23 THEN GOSUB *FONT_SET
  355. 5600 IF SWITCH=1 AND HMX=24 THEN GOSUB *FONT_SET
  356. 5610 IF SWITCH=1 AND HMX=25 THEN GOSUB *FONT_SET
  357. 5620 IF SWITCH=1 AND HMX=26 THEN GOSUB *FONT_SET
  358. 5630 IF SWITCH=1 AND HMX=27 THEN GOSUB *FONT_SET
  359. 5640 IF SWITCH=1 AND HMX=20 THEN GOTO *TV_MONITER
  360. 5650 '========================================
  361. 5660 LINE(HX(FONT_FLAG+22),HY(FONT_FLAG+22))-(HDX(FONT_FLAG+22),HDY(FONT_FLAG+22)),PSET,%7,B
  362. 5670 GOTO *ボタン反応1
  363. 5680 '
  364. 5690 '================================USER SUB
  365. 5700 *PROG_SET 'プログラム選択
  366. 5710 IF PROG_FLAG<>0 THEN LINE (HX(PROG_FLAG+7)+1,HY(PROG_FLAG+7)+1)-(HDX(PROG_FLAG+7)-1,HDY(PROG_FLAG+7)-1),PSET,%1,BF
  367. 5720 IF HMX=8  THEN PROG_FLAG=1 'RC-TIME
  368. 5730 IF HMX=9  THEN PROG_FLAG=2 'TIME(HH:MM:SS)
  369. 5740 IF HMX=10 THEN PROG_FLAG=3 'TIME(   MM:SS)
  370. 5750 IF HMX=33 THEN PROG_FLAG=26'TIME(HH:MM   )
  371. 5760 LINE (HX(PROG_FLAG+7)+1,HY(PROG_FLAG+7)+1)-(HDX(PROG_FLAG+7)-1,HDY(PROG_FLAG+7)-1),PSET,0,BF
  372. 5770 RETURN
  373. 5780 '
  374. 5790 *FONT_SET 'フォント選択(TIME(HH:MM)のみ)
  375. 5800 IF FONT_FLAG<>0 THEN X1=HX(FONT_FLAG+22):Y1=HY(FONT_FLAG+22):X2=HDX(FONT_FLAG+22):Y2=HDY(FONT_FLAG+22):GOSUB *CONNECT
  376. 5810 IF HMX=23 THEN FONT_FLAG=1 'システム   12ドット*2
  377. 5820 IF HMX=24 THEN FONT_FLAG=2 '明朝体     24ドット
  378. 5830 IF HMX=25 THEN FONT_FLAG=3 'ゴシック体 24ドット
  379. 5840 IF HMX=26 THEN FONT_FLAG=4 '教科書体   24ドット
  380. 5850 IF HMX=27 THEN FONT_FLAG=5 'まるもじ   24ドット
  381. 5860 LINE(HX(FONT_FLAG+22),HY(FONT_FLAG+22))-(HDX(FONT_FLAG+22),HDY(FONT_FLAG+22)),PSET,%7,B
  382. 5870 RETURN
  383. 5880 '
  384. 5890 *TV_MONITER 'ビデオ画面モニター
  385. 5900 SCREEN@ 1:CLS
  386. 5910 LINE(0,0)-(319,239),PSET,[0,0,0,1],BF:SIMPOSE ON
  387. 5920 LINE(29,209)-(294,222),PSET,7,BF
  388. 5930 SYMBOL(30,210),"TVモニター   マウスクリックで終了します",.75!,.75!,0
  389. 5940 MOUSE 0:WHILE MOUSE(2,0)=0 AND MOUSE(2,1)=0:WEND
  390. 5950 GOTO *FORMAT
  391. 5960 '
  392. 5970 *SET_TIMER '時刻設定
  393. 5980 '======GUIデータ(時刻設定)======
  394. 5990 MAX= 34
  395. 6000 BS$(0)="BOXFIL":HX(0)=0:HY(0)=0:HDX(0)=319:HDY(0)=239:COL(0)=9:MOJI$(0)="":PUSHB(0)=0
  396. 6010 BS$(1)="MCONNECT2":HX(1)=55:HY(1)=51:HDX(1)=249:HDY(1)=200:COL(1)=9:MOJI$(1)="":PUSHB(1)=0
  397. 6020 BS$(2)="CONNECT2":HX(2)=59:HY(2)=54:HDX(2)=76:HDY(2)=71:COL(2)=9:MOJI$(2)="":PUSHB(2)=0
  398. 6030 BS$(3)="MCONNECTR":HX(3)=79:HY(3)=55:HDX(3)=245:HDY(3)=71:COL(3)=9:MOJI$(3)="":PUSHB(3)=0
  399. 6040 BS$(4)="MOJI":HX(4)=62:HY(4)=57:HDX(4)=74:HDY(4)=69:COL(4)=7:MOJI$(4)="×":PUSHB(4)=0
  400. 6050 BS$(5)="MOJI":HX(5)=83:HY(5)=57:HDX(5)=131:HDY(5)=69:COL(5)=7:MOJI$(5)="時刻設定":PUSHB(5)=0
  401. 6060 BS$(6)="CONNECT2":HX(6)=201:HY(6)=178:HDX(6)=245:HDY(6)=196:COL(6)=9:MOJI$(6)="":PUSHB(6)=0
  402. 6070 BS$(7)="CONNECT2":HX(7)=153:HY(7)=178:HDX(7)=197:HDY(7)=196:COL(7)=9:MOJI$(7)="":PUSHB(7)=0
  403. 6080 BS$(8)="MOJI":HX(8)=163:HY(8)=181:HDX(8)=187:HDY(8)=193:COL(8)=7:MOJI$(8)="設定":PUSHB(8)=0
  404. 6090 BS$(9)="MOJI":HX(9)=211:HY(9)=181:HDX(9)=235:HDY(9)=193:COL(9)=7:MOJI$(9)="取消":PUSHB(9)=0
  405. 6100 BS$(10)="MCONNECTR":HX(10)=101:HY(10)=74:HDX(10)=146:HDY(10)=105:COL(10)=9:MOJI$(10)="":PUSHB(10)=0
  406. 6110 BS$(11)="MCONNECTR":HX(11)=101:HY(11)=108:HDX(11)=146:HDY(11)=139:COL(11)=9:MOJI$(11)="":PUSHB(11)=0
  407. 6120 BS$(12)="MCONNECTR":HX(12)=101:HY(12)=142:HDX(12)=146:HDY(12)=173:COL(12)=9:MOJI$(12)="":PUSHB(12)=0
  408. 6130 BS$(13)="CONNECT2":HX(13)=147:HY(13)=74:HDX(13)=162:HDY(13)=89:COL(13)=9:MOJI$(13)="":PUSHB(13)=0
  409. 6140 BS$(14)="CONNECT2":HX(14)=147:HY(14)=90:HDX(14)=162:HDY(14)=105:COL(14)=9:MOJI$(14)="":PUSHB(14)=0
  410. 6150 BS$(15)="CONNECT2":HX(15)=147:HY(15)=108:HDX(15)=162:HDY(15)=123:COL(15)=9:MOJI$(15)="":PUSHB(15)=0
  411. 6160 BS$(16)="CONNECT2":HX(16)=147:HY(16)=124:HDX(16)=162:HDY(16)=139:COL(16)=9:MOJI$(16)="":PUSHB(16)=0
  412. 6170 BS$(17)="CONNECT2":HX(17)=147:HY(17)=142:HDX(17)=162:HDY(17)=157:COL(17)=9:MOJI$(17)="":PUSHB(17)=0
  413. 6180 BS$(18)="CONNECT2":HX(18)=147:HY(18)=158:HDX(18)=162:HDY(18)=173:COL(18)=9:MOJI$(18)="":PUSHB(18)=0
  414. 6190 BS$(19)="MOJI":HX(19)=149:HY(19)=76:HDX(19)=161:HDY(19)=88:COL(19)=8:MOJI$(19)="▲":PUSHB(19)=0
  415. 6200 BS$(20)="MOJI":HX(20)=149:HY(20)=92:HDX(20)=161:HDY(20)=104:COL(20)=8:MOJI$(20)="▼":PUSHB(20)=0
  416. 6210 BS$(21)="MOJI":HX(21)=149:HY(21)=110:HDX(21)=161:HDY(21)=122:COL(21)=8:MOJI$(21)="▲":PUSHB(21)=0
  417. 6220 BS$(22)="MOJI":HX(22)=149:HY(22)=126:HDX(22)=161:HDY(22)=138:COL(22)=8:MOJI$(22)="▼":PUSHB(22)=0
  418. 6230 BS$(23)="MOJI":HX(23)=149:HY(23)=144:HDX(23)=161:HDY(23)=156:COL(23)=8:MOJI$(23)="▲":PUSHB(23)=0
  419. 6240 BS$(24)="MOJI":HX(24)=149:HY(24)=160:HDX(24)=161:HDY(24)=172:COL(24)=8:MOJI$(24)="▼":PUSHB(24)=0
  420. 6250 BS$(25)="MOJI":HX(25)=79:HY(25)=82:HDX(25)=91:HDY(25)=94:COL(25)=8:MOJI$(25)="時":PUSHB(25)=0
  421. 6260 BS$(26)="MOJI":HX(26)=79:HY(26)=117:HDX(26)=91:HDY(26)=129:COL(26)=8:MOJI$(26)="分":PUSHB(26)=0
  422. 6270 BS$(27)="MOJI":HX(27)=79:HY(27)=152:HDX(27)=91:HDY(27)=164:COL(27)=8:MOJI$(27)="秒":PUSHB(27)=0
  423. 6280 BS$(28)="MOJI":HX(28)=166:HY(28)=84:HDX(28)=226:HDY(28)=96:COL(28)=8:MOJI$(28)="(00~23)":PUSHB(28)=0
  424. 6290 BS$(29)="MOJI":HX(29)=166:HY(29)=117:HDX(29)=226:HDY(29)=129:COL(29)=8:MOJI$(29)="(00~59)":PUSHB(29)=0
  425. 6300 BS$(30)="MOJI":HX(30)=166:HY(30)=151:HDX(30)=226:HDY(30)=163:COL(30)=8:MOJI$(30)="(00~59)":PUSHB(30)=0
  426. 6310 BS$(31)="MOJI":HX(31)=114:HY(31)=83:HDX(31)=138:HDY(31)=95:COL(31)=0:MOJI$(31)="00":PUSHB(31)=0
  427. 6320 BS$(32)="MOJI":HX(32)=114:HY(32)=117:HDX(32)=138:HDY(32)=129:COL(32)=0:MOJI$(32)="00":PUSHB(32)=0
  428. 6330 BS$(33)="MOJI":HX(33)=114:HY(33)=151:HDX(33)=138:HDY(33)=163:COL(33)=0:MOJI$(33)="00":PUSHB(33)=0
  429. 6340 GOSUB *RK:GOSUB *NOWTIME
  430. 6350 *ボタン反応2
  431. 6360 WHILE MOUSE(2,0)=0:WEND:MX=MOUSE(0):MY=MOUSE(1):SWITCH=0:HMX=0
  432. 6370 FOR I=0 TO MAX
  433. 6380 IF LEFT$(BS$(I),7)="CONNECT" THEN
  434. 6390 IF MX>=HX(I) AND MY>=HY(I) AND MX<=HDX(I) AND MY<=HDY(I) THEN HMX=I
  435. 6400 ENDIF
  436. 6410 NEXT
  437. 6420 IF HMX<>0 GOTO *ボタン処理2
  438. 6430 GOTO *ボタン反応2
  439. 6440 *ボタン処理2
  440. 6450 GOSUB *ボタン処理
  441. 6460 '==============================ボタン分岐
  442. 6470 IF SWITCH=1 AND HMX=6  THEN GOTO *BACK_MAIN
  443. 6480 IF SWITCH=1 AND HMX=7  THEN GOTO *TIMESET
  444. 6490 IF SWITCH=1 AND HMX=2  THEN GOTO *BACK_MAIN
  445. 6500 IF SWITCH=1 AND HMX=13 THEN GOSUB *TIMEPUT
  446. 6510 IF SWITCH=1 AND HMX=14 THEN GOSUB *TIMEPUT
  447. 6520 IF SWITCH=1 AND HMX=15 THEN GOSUB *TIMEPUT
  448. 6530 IF SWITCH=1 AND HMX=16 THEN GOSUB *TIMEPUT
  449. 6540 IF SWITCH=1 AND HMX=17 THEN GOSUB *TIMEPUT
  450. 6550 IF SWITCH=1 AND HMX=18 THEN GOSUB *TIMEPUT
  451. 6560 '========================================
  452. 6570 GOTO *ボタン反応2
  453. 6580 '
  454. 6590 *BACK_MAIN
  455. 6600 GOTO *YOURPROGRAM
  456. 6610 '
  457. 6620 *TIMEPUT '時間枠の上下
  458. 6630 IF HMX=13 THEN HOUR=HOUR+1:IF HOUR>=24 THEN HOUR=0
  459. 6640 IF HMX=14 THEN HOUR=HOUR-1:IF HOUR=<-1 THEN HOUR=23
  460. 6650 IF HMX=15 THEN MIN=MIN+1:IF MIN>=60 THEN MIN=0
  461. 6660 IF HMX=16 THEN MIN=MIN-1:IF MIN=<-1 THEN MIN=59
  462. 6670 IF HMX=17 THEN SEC=SEC+1:IF SEC>=60 THEN SEC=0
  463. 6680 IF HMX=18 THEN SEC=SEC-1:IF SEC=<-1 THEN SEC=59
  464. 6690 '
  465. 6700 IF HMX=13 OR HMX=14 THEN                                                   TMP$=RIGHT$("00"+RIGHT$(STR$(HOUR),LEN(STR$(HOUR))-1),2):TMP=31
  466. 6710 IF HMX=15 OR HMX=16 THEN                                                   TMP$=RIGHT$("00"+RIGHT$(STR$(MIN),LEN(STR$(MIN))-1),2):TMP=32
  467. 6720 IF HMX=17 OR HMX=18 THEN                                                   TMP$=RIGHT$("00"+RIGHT$(STR$(SEC),LEN(STR$(SEC))-1),2):TMP=33
  468. 6730 LINE(HX(TMP),HY(TMP))-(HDX(TMP),HDY(TMP)),PSET,%1,BF
  469. 6740 SYMBOL(HX(TMP),HY(TMP)),AKCNV$(TMP$),.75!,.75!,%8
  470. 6750 RETURN
  471. 6760 '
  472. 6770 *TIMESET
  473. 6780 HH$=RIGHT$("00"+RIGHT$(STR$(HOUR),LEN(STR$(HOUR))-1),2)
  474. 6790 MM$=RIGHT$("00"+RIGHT$(STR$(MIN),LEN(STR$(MIN))-1),2)
  475. 6800 SS$=RIGHT$("00"+RIGHT$(STR$(SEC),LEN(STR$(SEC))-1),2)
  476. 6810 TIME$=HH$+":"+MM$+":"+SS$
  477. 6820 GOTO *BACK_MAIN
  478. 6830 '
  479. 6840 *NOWTIME
  480. 6850 HH$=LEFT$(TIME$,2):MM$=MID$(TIME$,4,2):SS$=RIGHT$(TIME$,2)
  481. 6860 HOUR=VAL(HH$):MIN=VAL(MM$):SEC=VAL(SS$)
  482. 6870 LINE(HX(31),HY(31))-(HDX(31),HDY(31)),PSET,%1,BF
  483. 6880 SYMBOL(HX(31),HY(31)),AKCNV$(HH$),.75!,.75!,%8
  484. 6890 LINE(HX(32),HY(32))-(HDX(32),HDY(32)),PSET,%1,BF
  485. 6900 SYMBOL(HX(32),HY(32)),AKCNV$(MM$),.75!,.75!,%8
  486. 6910 LINE(HX(33),HY(33))-(HDX(33),HDY(33)),PSET,%1,BF
  487. 6920 SYMBOL(HX(33),HY(33)),AKCNV$(SS$),.75!,.75!,%8
  488. 6930 RETURN
  489. 6940 '
  490. 6950 *JUMP:CLS '各プログラムへのジャンプ
  491. 6960 IF PROG_FLAG=1  THEN           GOTO *RC_TIMECORD
  492. 6970 IF PROG_FLAG=2  THEN VT_FLAG=1:GOTO *V_TIMER
  493. 6980 IF PROG_FLAG=3  THEN VT_FLAG=2:GOTO *V_TIMER
  494. 6990 IF PROG_FLAG=26 THEN           GOTO *TV_CLOCK
  495. 7000 GOTO *YOURPROGRAM
  496. 7010 '
  497. 7020 *ZOOM '何故わざわざ画面を2倍にするのかは……聞かないで下さい(^_^;)
  498. 7030   OUT &H440,&H1B,2:OUT &H442,(YBAI-1)*16+(XBAI-1),2
  499. 7040 RETURN
  500. 7050 '
  501. 10000 '********************************************************************
  502. 10010 '**              RC-TIMECORD表示部分 For 8DOTFONT                  **
  503. 10020 '********************************************************************
  504. 10030 *RC_TIMECORD
  505. 10040 SCREEN 1,1,0:SCREEN@ 1:CLS:LINE(0,0)-(319,239),PSET,[0,0,0,1],BF
  506. 10050 DIM DAT%(19200),PT%(3)                  ' 配列(PT%)は 8バイト 必要
  507. 10060 SCREEN 1,1:LINE(0,0)-(8*16-1,7),PSET,0,BF
  508. 10070 FOR I&=0 TO 15
  509. 10080   A$=MID$("TCR 0123456789:・",I&+1)
  510. 10090   CALLM 0 ,ASC(A$),&H14,VARPTR(PT%(0))  ' 配列 PT%() にパターン格納
  511. 10100   X=I&*8:Y=0
  512. 10110   PUT@(X,Y)-(X+7,Y+7),PT%               ' パターン表示
  513. 10120 NEXT
  514. 10130 GET@A(0,0)-(159,119),DAT%:LINE(0,0)-(319,239),PSET,[0,0,0,1],BF
  515. 10140 PUT@A(0,0)-(159,119),DAT%,PSET,2,2  '2倍にした8×8DOT
  516. 10150 ERASE DAT%,PT%:DIM FONT%(256*16)
  517. 10160 FOR I&=0 TO 15
  518. 10170   X=I&*16:Y=0
  519. 10180   GET@A(X,Y)-(X+15,Y+15),FONT%,256*I&
  520. 10190 NEXT
  521. 10200 LINE(0,0)-(319,239),PSET,[0,0,0,1],BF
  522. 10210 '
  523. 10220 SCREEN 1,1,2:GOSUB *準備_RC
  524. 10230 '
  525. 10240 '===================================================================
  526. 10250 '                         メインルーチン
  527. 10260 '===================================================================
  528. 10270 SIMPOSE ON
  529. 10280 *繰り返し_RC
  530. 10290  OLDTIME$=TIME$:FLAME=FLAME+1:WAIT 2
  531. 10300  IF FLAME=30 THEN FLAME=0
  532. 10310 '
  533. 10320  GOSUB *時刻表示_RC
  534. 10330 '
  535. 10340 GOTO *繰り返し_RC
  536. 10350 '
  537. 10360 '===================================================================
  538. 10370 '                時刻の表示をするサブルーチン
  539. 10380 '===================================================================
  540. 10390 *時刻表示_RC
  541. 10400  MOUSE(2) STOP:MOUSE(4) STOP
  542. 10410  OH1$=NH1$:OH2$=NH2$
  543. 10420  OM1$=NM1$:OM2$=NM2$
  544. 10430  OS1$=NS1$:OS2$=NS2$
  545. 10440  OF1$=NF1$:OF2$=NF2$
  546. 10450 '
  547. 10460  NH1$=LEFT$(TIME$,1) :NH2$=MID$(TIME$,2,1)
  548. 10470  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  549. 10480  NS1$=MID$(TIME$,7,1):NS2$=RIGHT$(TIME$,1)
  550. 10490  TMP$=RIGHT$(STR$(FLAME),2)
  551. 10500  NF1$=LEFT$(TMP$,1):NF2$=RIGHT$(TMP$,1)
  552. 10510 '
  553. 10520  IF OH1$<>NH1$ THEN                                                        PUT@A(6*16+8,12)-(7*16+8-1,27),FONT%,,,,,(256*(VAL(NH1$)+4))
  554. 10530  IF OH2$<>NH2$ THEN                                                        PUT@A(7*16+8,12)-(8*16+8-1,27),FONT%,,,,,(256*(VAL(NH2$)+4))
  555. 10540  IF OM1$<>NM1$ THEN                                                        PUT@A(9*16+8,12)-(10*16+8-1,27),FONT%,,,,,(256*(VAL(NM1$)+4))
  556. 10550  IF OM2$<>NM2$ THEN                                                        PUT@A(10*16+8,12)-(11*16+8-1,27),FONT%,,,,,(256*(VAL(NM2$)+4))
  557. 10560  IF OS1$<>NS1$ THEN                                                        PUT@A(12*16+8,12)-(13*16+8-1,27),FONT%,,,,,(256*(VAL(NS1$)+4))
  558. 10570  IF OS2$<>NS2$ THEN                                                        PUT@A(13*16+8,12)-(14*16+8-1,27),FONT%,,,,,(256*(VAL(NS2$)+4))
  559. 10580  IF OF1$<>NF1$ THEN                                                        PUT@A(15*16+8,12)-(16*16+8-1,27),FONT%,,,,,(256*(VAL(NF1$)+4))
  560. 10590  IF OF2$<>NF2$ THEN                                                        PUT@A(16*16+8,12)-(17*16+8-1,27),FONT%,,,,,(256*(VAL(NF2$)+4))
  561. 10600  MOUSE(2) ON:MOUSE(4) ON
  562. 10610  RETURN
  563. 10620 '
  564. 10630 '===================================================================
  565. 10640 '                画面の準備をするサブルーチン
  566. 10650 '===================================================================
  567. 10660 *準備_RC
  568. 10670 '
  569. 10680  LINE(2*16+8,12)-(17*16-1+8,27),PSET,0,BF
  570. 10690  FLAME=0
  571. 10700 '
  572. 10710  NH1$=LEFT$(TIME$,1) :NH2$=MID$(TIME$,2,1)
  573. 10720  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  574. 10730  NS1$=MID$(TIME$,7,1):NS2$=RIGHT$(TIME$,1)
  575. 10740  TMP$=RIGHT$(STR$(FLAME),2)
  576. 10750  NF1$=LEFT$(TMP$,1):NF2$=RIGHT$(TMP$,1)
  577. 10760 '
  578. 10770  PUT@A(2*16+8,12)-(3*16+8-1,27),FONT%,,,,,(256*0)
  579. 10780  PUT@A(3*16+8,12)-(4*16+8-1,27),FONT%,,,,,(256*1)
  580. 10790  PUT@A(4*16+8,12)-(5*16+8-1,27),FONT%,,,,,(256*2)
  581. 10800  PUT@A(5*16+8,12)-(6*16+8-1,27),FONT%,,,,,(256*3)
  582. 10810  PUT@A(6*16+8,12)-(7*16+8-1,27),FONT%,,,,,(256*(VAL(NH1$)+4))
  583. 10820  PUT@A(7*16+8,12)-(8*16+8-1,27),FONT%,,,,,(256*(VAL(NH2$)+4))
  584. 10830  PUT@A(8*16+8,12)-(9*16+8-1,27),FONT%,,,,,(256*14)
  585. 10840  PUT@A(9*16+8,12)-(10*16+8-1,27),FONT%,,,,,(256*(VAL(NM1$)+4))
  586. 10850  PUT@A(10*16+8,12)-(11*16+8-1,27),FONT%,,,,,(256*(VAL(NM2$)+4))
  587. 10860  PUT@A(11*16+8,12)-(12*16+8-1,27),FONT%,,,,,(256*14)
  588. 10870  PUT@A(12*16+8,12)-(13*16+8-1,27),FONT%,,,,,(256*(VAL(NS1$)+4))
  589. 10880  PUT@A(13*16+8,12)-(14*16+8-1,27),FONT%,,,,,(256*(VAL(NS2$)+4))
  590. 10890  PUT@A(14*16+8,12)-(15*16+8-1,27),FONT%,,,,,(256*15)
  591. 10900  PUT@A(15*16+8,12)-(16*16+8-1,27),FONT%,,,,,(256*(VAL(NF1$)+4))
  592. 10910  PUT@A(16*16+8,12)-(17*16+8-1,27),FONT%,,,,,(256*(VAL(NF2$)+4))
  593. 10920  MOUSE 0  'マウス初期化
  594. 10930  ON MOUSE(2) GOSUB *COUNTSTOP_RC :MOUSE(2) ON '左クリック
  595. 10940  ON MOUSE(4) GOSUB *COUNTRESET_RC:MOUSE(4) ON '右クリック
  596. 10950  RETURN
  597. 10960 *MENU_RC
  598. 10970  MOUSE(2) OFF:MOUSE(4) OFF
  599. 10980  ERASE FONT%:GOTO *FORMAT 'GOTO MAINPROG
  600. 10990 '
  601. 11000 '===================================================================
  602. 11010 '              マウス操作(カウント)ルーチン類
  603. 11020 '===================================================================
  604. 11030 *COUNTSTOP_RC 'カウントストップ
  605. 11040  MOUSE(2) STOP:MOUSE(4) STOP
  606. 11050  STOPTIME$=TIME$:STOPFLAME=FLAME
  607. 11060  *LOOP1_RC
  608. 11070    IF MOUSE(2,0)=0 THEN 11100
  609. 11080    IF MOUSE(2,0) AND MOUSE(2,1) THEN RETURN *MENU_RC
  610. 11090  GOTO *LOOP1_RC
  611. 11100  MOUSE(2) ON:MOUSE(4) ON:TIME$=STOPTIME$:FLAME=STOPFLAME:RETURN
  612. 11110 '
  613. 11120 *COUNTRESET_RC 'カウントリセット
  614. 11130  MOUSE(2) STOP:MOUSE(4) STOP
  615. 11140  TIME$="00:00:00":FLAME=0:GOSUB *時刻表示_RC
  616. 11150  *LOOP2_RC
  617. 11160    IF MOUSE(2,1)=0 THEN 11190
  618. 11170    IF MOUSE(2,0) AND MOUSE(2,1) THEN RETURN *MENU_RC
  619. 11180  GOTO *LOOP2_RC
  620. 11190  MOUSE(2) ON:MOUSE(4) ON
  621. 11200  TIME$="00:00:00":FLAME=0:RETURN'
  622. 11210 '
  623. 15000 '********************************************************************
  624. 15010 '**                      テレビの時計の表示部分                    **
  625. 15020 '********************************************************************
  626. 15030 *TV_CLOCK
  627. 15040 SCREEN 1,1,0:SCREEN@ 1:CLS
  628. 15050 LINE (0,0)-(319,239),PSET,[0,0,0,1],BF
  629. 15060 *FONT_CHECK
  630. 15070 IF FONT_FLAG=1 THEN DEF FONT "システム   12ドット"
  631. 15080 IF FONT_FLAG=2 THEN DEF FONT "明朝体     24ドット"
  632. 15090 IF FONT_FLAG=3 THEN DEF FONT "ゴシック体 24ドット"
  633. 15100 IF FONT_FLAG=4 THEN DEF FONT "教科書体   24ドット"
  634. 15110 IF FONT_FLAG=5 THEN DEF FONT "まるもじ   24ドット"
  635. 15120 IF FONT_FLAG>=6 THEN DEF FONT "システム   12ドット"
  636. 15130 SYMBOL(0,0),"0123456789:",1.5!,1.5!,7,,,1
  637. 15140 SYMBOL(0,1),"0123456789:",1.5!,1.5!,7,,,1
  638. 15150 DIM FONT%(312*12) '(24*13)*12
  639. 15160 FOR I=0 TO 11
  640. 15170   GET@A(13*I,0)-(13*(I+1)-1,23),FONT%,312*I
  641. 15180 NEXT
  642. 15190 CLS:LINE (0,0)-(319,239),PSET,[0,0,0,1],BF
  643. 15200 '
  644. 15210 SCREEN 1,1,2:GOSUB *準備_TVC
  645. 15220 '
  646. 15230 '===================================================================
  647. 15240 '                         メインルーチン
  648. 15250 '===================================================================
  649. 15260 SIMPOSE ON
  650. 15270 *繰り返し_TVC
  651. 15280  OLDTIME$=TIME$
  652. 15290  WHILE OLDTIME$=TIME$:WEND
  653. 15300 '
  654. 15310  GOSUB *時刻表示_TVC
  655. 15320 '
  656. 15330 GOTO *繰り返し_TVC
  657. 15340 '
  658. 15350 '===================================================================
  659. 15360 '                時刻の表示をするサブルーチン
  660. 15370 '===================================================================
  661. 15380 *時刻表示_TVC
  662. 15390  OH1$=NH1$:OH2$=NH2$
  663. 15400  OM1$=NM1$:OM2$=NM2$
  664. 15410  TMP$=LEFT$(TIME$,2) :IF VAL(TMP$)>=13 THEN TMP$=STR$(VAL(TMP$)-12)
  665. 15420  TMP$=RIGHT$("00"+RIGHT$(TMP$,LEN(TMP$)-1),2)
  666. 15430  NH1$=LEFT$(TMP$,1)  :NH2$=RIGHT$(TMP$,1)
  667. 15440  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  668. 15450 '
  669. 15460  IF OH1$<>NH1$ THEN IF VAL(NH1$)<>0 THEN PUT@A(20+(13*0),20)-(20+(13*1-1),43),FONT%,,,,,(312*(VAL(NH1$))) ELSE PUT@A(20+(13*0),20)-(20+(13*1-1),43),FONT%,,,,,(312*11)
  670. 15470  IF OH2$<>NH2$ THEN                                                            PUT@A(25+(13*1),20)-(25+(13*2-1),43),FONT%,,,,,(312*(VAL(NH2$)))
  671. 15480  IF OM1$<>NM1$ THEN                                                            PUT@A(35+(13*3),20)-(35+(13*4-1),43),FONT%,,,,,(312*(VAL(NM1$)))
  672. 15490  IF OM2$<>NM2$ THEN                                                            PUT@A(40+(13*4),20)-(40+(13*5-1),43),FONT%,,,,,(312*(VAL(NM2$)))
  673. 15500  RETURN
  674. 15510 '
  675. 15520 '===================================================================
  676. 15530 '                画面の準備をするサブルーチン
  677. 15540 '===================================================================
  678. 15550 *準備_TVC
  679. 15560  TMP$=LEFT$(TIME$,2) :IF VAL(TMP$)>=13 THEN TMP$=STR$(VAL(TMP$)-12)
  680. 15570  TMP$=RIGHT$("00"+RIGHT$(TMP$,LEN(TMP$)-1),2)
  681. 15580  NH1$=LEFT$(TMP$,1)  :NH2$=RIGHT$(TMP$,1)
  682. 15590  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  683. 15600 '
  684. 15610  IF VAL(NH1$)<>0 THEN PUT@A(20+(13*0),20)-(20+(13*1-1),43),FONT%,,,,,(312*(VAL(NH1$))) ELSE PUT@A(20+(13*0),20)-(20+(13*1-1),43),FONT%,,,,,(312*11)
  685. 15620  PUT@A(25+(13*1),20)-(25+(13*2-1),43),FONT%,,,,,(312*(VAL(NH2$)))
  686. 15630  PUT@A(30+(13*2),20)-(30+(13*3-1),43),FONT%,,,,,(312*10)
  687. 15640  PUT@A(35+(13*3),20)-(35+(13*4-1),43),FONT%,,,,,(312*(VAL(NM1$)))
  688. 15650  PUT@A(40+(13*4),20)-(40+(13*5-1),43),FONT%,,,,,(312*(VAL(NM2$)))
  689. 15660  MOUSE 0:ON MOUSE(4) GOSUB *MENU_TVC:MOUSE(4) ON
  690. 15670  RETURN
  691. 15680 *MENU_TVC
  692. 15690 MOUSE(4) OFF:ERASE FONT%:GOTO *FORMAT
  693. 15700 '
  694. 15710 '
  695. 20000 '********************************************************************
  696. 20010 '**テレビ局内時計の部分1(HH:MM:SS)&テレビ局内時計の部分2(MM:SS) **
  697. 20020 '**                                  ↑はV1.3から追加しました      **
  698. 20030 '********************************************************************
  699. 20040 *V_TIMER
  700. 20050 SCREEN 1,0,0:SCREEN@ 1:CLS:LINE (0,0)-(319,239),PSET,[0,0,0,1],BF
  701. 20060 DIM FONT%((15*27)*10+(6*21))
  702. 20070 '          ↑0-9FONT  ↑":"FONT
  703. 20080 '            405Words    126Words
  704. 20090 '------------------------FONT MAKE---------------------------
  705. 20100 '1
  706. 20110 LINE (13*3,13*3)-(14*3-1,22*3-1),PSET,7,BF
  707. 20120 GET@A(9*3,13*3)-(14*3-1,22*3-1),FONT%,(405*1)
  708. 20130 '8
  709. 20140 FOR I=0 TO 2
  710. 20150   LINE(51*3+I,13*3+I)-((56*3-1)-I,(22*3-1)-I),PSET,7,B '□
  711. 20160 NEXT
  712. 20170 LINE (52*3,17*3)-(55*3-1,18*3-1),PSET,7,BF'-
  713. 20180 GET@A(51*3,13*3)-(56*3-1,22*3-1),FONT%,(405*8)
  714. 20190 '0
  715. 20200 PUT@A(3*3,13*3)-(8*3-1,22*3-1),FONT%,,,,,(405*8)
  716. 20210 LINE (4*3,17*3)-(7*3-1,18*3-1),PSET,[0,0,0,1],BF  '-を消す
  717. 20220 GET@A(3*3,13*3)-(8*3-1,22*3-1),FONT%
  718. 20230 '9
  719. 20240 PUT@A(57*3,13*3)-(62*3-1,22*3-1),FONT%,,,,,(405*8)
  720. 20250 LINE (57*3,18*3)-(61*3-1,22*3-1),PSET,[0,0,0,1],BF'└を消す
  721. 20260 GET@A(57*3,13*3)-(62*3-1,22*3-1),FONT%,(405*9)
  722. 20270 '6
  723. 20280 PUT@A(39*3,13*3)-(44*3-1,22*3-1),FONT%,,,,,(405*8)
  724. 20290 LINE (40*3,13*3)-(44*3-1,17*3-1),PSET,[0,0,0,1],BF'|を消す
  725. 20300 GET@A(39*3,13*3)-(44*3-1,22*3-1),FONT%,(405*6)
  726. 20310 '7
  727. 20320 PUT@A(45*3,13*3)-(50*3-1,22*3-1),FONT%
  728. 20330 LINE (45*3,14*3)-(49*3-1,22*3-1),PSET,[0,0,0,1],BF'└を消す
  729. 20340 GET@A(45*3,13*3)-(50*3-1,22*3-1),FONT%,(405*7)
  730. 20350 '5
  731. 20360 PUT@A(33*3,13*3)-(38*3-1,22*3-1),FONT%,,,,,(405*6)
  732. 20370 LINE (33*3,18*3)-(34*3-1,21*3-1),PSET,[0,0,0,1],BF'|を消す
  733. 20380 LINE (33*3,13*3)-(38*3-1,14*3-1),PSET,7,BF'-を追加
  734. 20390 GET@A(33*3,13*3)-(38*3-1,22*3-1),FONT%,(405*5)
  735. 20400 '4
  736. 20410 PUT@A(27*3,13*3)-(32*3-1,22*3-1),FONT%,,,,,(405*9)
  737. 20420 LINE (28*3,13*3)-(31*3-1,14*3-1),PSET,[0,0,0,1],BF'-を消す
  738. 20430 GET@A(27*3,13*3)-(32*3-1,22*3-1),FONT%,(405*4)
  739. 20440 '3
  740. 20450 PUT@A(21*3,13*3)-(26*3-1,22*3-1),FONT%,,,,,(405*8)
  741. 20460 LINE (21*3,14*3)-(22*3-1,17*3-1),PSET,[0,0,0,1],BF'|を消す
  742. 20470 LINE (21*3,18*3)-(22*3-1,21*3-1),PSET,[0,0,0,1],BF'|を消す
  743. 20480 GET@A(21*3,13*3)-(26*3-1,22*3-1),FONT%,(405*3)
  744. 20490 '2
  745. 20500 PUT@A(15*3,13*3)-(20*3-1,22*3-1),FONT%,,,,,(405*3)
  746. 20510 LINE (15*3,18*3)-(16*3-1,21*3-1),PSET,7,BF'|を描く
  747. 20520 LINE (19*3,18*3)-(20*3-1,21*3-1),PSET,[0,0,0,1],BF'|を消す
  748. 20530 GET@A(15*3,13*3)-(20*3-1,22*3-1),FONT%,(405*2)
  749. 20540 ':
  750. 20550 LINE (64*3,14*3)-(66*3-1,16*3-1),PSET,7,BF
  751. 20560 LINE (64*3,19*3)-(66*3-1,21*3-1),PSET,7,BF
  752. 20570 GET@A(64*3,14*3)-(66*3-1,21*3-1),FONT%,(405*10)
  753. 20580 '----------End Of Data Make
  754. 20590 LINE (0,13*3)-(319,22*3-1),PSET,[0,0,0,1],BF:SCREEN 1,0,1
  755. 20600 'プログラム分岐
  756. 20610 IF VT_FLAG=1 THEN *VT_MAIN
  757. 20620 IF VT_FLAG=2 THEN *VT_MAIN2
  758. 20630 '
  759. 20640 '===================================================================
  760. 20650 '                         メインルーチン(VT-1)
  761. 20660 '===================================================================
  762. 20670 *VT_MAIN
  763. 20680 GOSUB *準備_VT
  764. 20690 '
  765. 20700 SIMPOSE ON
  766. 20710 *繰り返し_VT
  767. 20720  OLDTIME$=TIME$
  768. 20730  WHILE OLDTIME$=TIME$:WEND
  769. 20740 '
  770. 20750  GOSUB *時刻表示_VT
  771. 20760 '
  772. 20770 GOTO *繰り返し_VT
  773. 20780 '
  774. 20790 '===================================================================
  775. 20800 '                時刻の表示をするサブルーチン(VT-1)
  776. 20810 '===================================================================
  777. 20820 *時刻表示_VT
  778. 20830  OH1$=NH1$:OH2$=NH2$
  779. 20840  OM1$=NM1$:OM2$=NM2$
  780. 20850  OS1$=NS1$:OS2$=NS2$
  781. 20860  NH1$=LEFT$(TIME$,1) :NH2$=MID$(TIME$,2,1)
  782. 20870  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  783. 20880  NS1$=MID$(TIME$,7,1):NS2$=RIGHT$(TIME$,1)
  784. 20890 '
  785. 20900  IF OH1$<>NH1$ THEN                                                            PUT@A(6*3,4*3)-(11*3-1,13*3-1),FONT%,,,,,(405*(VAL(NH1$)))
  786. 20910  IF OH2$<>NH2$ THEN                                                            PUT@A(12*3,4*3)-(17*3-1,13*3-1),FONT%,,,,,(405*(VAL(NH2$)))
  787. 20920  IF OM1$<>NM1$ THEN                                                            PUT@A(23*3,4*3)-(28*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM1$)))
  788. 20930  IF OM2$<>NM2$ THEN                                                            PUT@A(29*3,4*3)-(34*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM2$)))
  789. 20940  IF OS1$<>NS1$ THEN                                                            PUT@A(40*3,4*3)-(45*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS1$)))
  790. 20950  IF OS2$<>NS2$ THEN                                                            PUT@A(46*3,4*3)-(51*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS2$)))
  791. 20960  RETURN
  792. 20970 '
  793. 20980 '===================================================================
  794. 20990 '                画面の準備をするサブルーチン(VT-1)
  795. 21000 '===================================================================
  796. 21010 *準備_VT
  797. 21020  NH1$=LEFT$(TIME$,1) :NH2$=MID$(TIME$,2,1)
  798. 21030  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  799. 21040  NS1$=MID$(TIME$,7,1):NS2$=RIGHT$(TIME$,1)
  800. 21050 '
  801. 21060  PUT@A(6*3,4*3)-(11*3-1,13*3-1),FONT%,,,,,(405*(VAL(NH1$)))
  802. 21070  PUT@A(12*3,4*3)-(17*3-1,13*3-1),FONT%,,,,,(405*(VAL(NH2$)))
  803. 21080  PUT@A(19*3,5*3)-(21*3-1,12*3-1),FONT%,,,,,(405*10)
  804. 21090  PUT@A(23*3,4*3)-(28*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM1$)))
  805. 21100  PUT@A(29*3,4*3)-(34*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM2$)))
  806. 21110  PUT@A(36*3,5*3)-(38*3-1,12*3-1),FONT%,,,,,(405*10)
  807. 21120  PUT@A(40*3,4*3)-(45*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS1$)))
  808. 21130  PUT@A(46*3,4*3)-(51*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS2$)))
  809. 21140  MOUSE 0:ON MOUSE(4) GOSUB *MENU_VT:MOUSE(4) ON
  810. 21150  RETURN
  811. 21160 *MENU_VT
  812. 21170 MOUSE(4) OFF:ERASE FONT%:GOTO *FORMAT
  813. 21180 '===================================================================
  814. 21190 '                         メインルーチン(VT-2)
  815. 21200 '===================================================================
  816. 21210 *VT_MAIN2
  817. 21220 GOSUB *準備_VT2
  818. 21230 '
  819. 21240 SIMPOSE ON
  820. 21250 *繰り返し_VT2
  821. 21260  OLDTIME$=TIME$
  822. 21270  WHILE OLDTIME$=TIME$:WEND
  823. 21280 '
  824. 21290  GOSUB *時刻表示_VT2
  825. 21300 '
  826. 21310 GOTO *繰り返し_VT2
  827. 21320 '
  828. 21330 '===================================================================
  829. 21340 '                時刻の表示をするサブルーチン(VT-2)
  830. 21350 '===================================================================
  831. 21360 *時刻表示_VT2
  832. 21370  OM1$=NM1$:OM2$=NM2$
  833. 21380  OS1$=NS1$:OS2$=NS2$
  834. 21390  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  835. 21400  NS1$=MID$(TIME$,7,1):NS2$=RIGHT$(TIME$,1)
  836. 21410 '
  837. 21420  IF OM1$<>NM1$ THEN                                                            PUT@A(6*3,4*3)-(11*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM1$)))
  838. 21430  IF OM2$<>NM2$ THEN                                                            PUT@A(12*3,4*3)-(17*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM2$)))
  839. 21440  IF OS1$<>NS1$ THEN                                                            PUT@A(23*3,4*3)-(28*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS1$)))
  840. 21450  IF OS2$<>NS2$ THEN                                                            PUT@A(29*3,4*3)-(34*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS2$)))
  841. 21460  RETURN
  842. 21470 '
  843. 21480 '===================================================================
  844. 21490 '                画面の準備をするサブルーチン(VT-2)
  845. 21500 '===================================================================
  846. 21510 *準備_VT2
  847. 21520  NM1$=MID$(TIME$,4,1):NM2$=MID$(TIME$,5,1)
  848. 21530  NS1$=MID$(TIME$,7,1):NS2$=RIGHT$(TIME$,1)
  849. 21540 '
  850. 21550  PUT@A(6*3,4*3)-(11*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM1$)))
  851. 21560  PUT@A(12*3,4*3)-(17*3-1,13*3-1),FONT%,,,,,(405*(VAL(NM2$)))
  852. 21570  PUT@A(19*3,5*3)-(21*3-1,12*3-1),FONT%,,,,,(405*10)
  853. 21580  PUT@A(23*3,4*3)-(28*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS1$)))
  854. 21590  PUT@A(29*3,4*3)-(34*3-1,13*3-1),FONT%,,,,,(405*(VAL(NS2$)))
  855. 21600  MOUSE 0:ON MOUSE(4) GOSUB *MENU_VT2:MOUSE(4) ON
  856. 21610  RETURN
  857. 21620 *MENU_VT2
  858. 21630 MOUSE(4) OFF:ERASE FONT%:GOTO *FORMAT
  859.